High dynamic range image editing

ABSTRACT

A high dynamic range image editing system for editing an image file having pixels spanning a first range of light intensity levels in an image editing system that only displays differences in the light intensity levels of pixels within a second range of light intensity levels that is less than the first range of light intensity levels, without reducing the range of light intensity levels in the image file.

CROSS REFERENCES TO RELATED APPLICATIONS

[0001] This application is related to and claims the benefit of the filing date of the following US provisional applications: HDR Shop, Application No. 60/297,096, filed Jun. 8, 2001; and High Dynamic Range Image Processing System and Method, Application No. 60/297,397, filed Jun. 11, 2001. The contents of both of these provisional applications are incorporated herein by reference.

BACKGROUND OF THE INVENTION

[0002] 1. Field of the Invention

[0003] This invention relates to image editing systems and methods. More particularly, this invention relates to image editing systems and methods that work with images stored in digital format.

[0004] 2. Description of Related Art

[0005] The “dynamic range” of a scene is the contrast ratio between its brightest and darkest parts. A plate of evenly lit mashed potatoes outside on a cloudy day has a very low dynamic range. The interior of an ornate cathedral with light streaming in through its stained-glass windows has a very high dynamic range. Scenes in which light sources can be seen directly also usually have a very high dynamic range.

[0006] As is well known, there are variety of systems and methods that edit images. Examples of edit operations on images include: cropping, rotating, translating, convolving, cloning, retouching, painting or re-sampling.

[0007] In more recent times, computers have been used for image editing. The image is typically represented by a set of pixels. Each pixel is typically assigned values representing its color and intensity.

[0008] Unfortunately, most digital editing systems have a low dynamic range, meaning that the contrast ratio between the lightest and darkest pixel that they can display is small. In many systems, for example, there are only 256 distinct intensity levels that can be specified, e.g., from 0 to 255.

[0009] In the real world, on the other hand, there is no theoretical limit to the dynamic range of an image. Most images, moreover, have a dynamic range in excess of 100,000. Some have dynamic ranges in excess of 1,000,000. To be sure, most people are capable of distinguishing between dynamic ranges far, far in excess of the limited range of 255 that is found on many computer systems.

[0010] When a high dynamic range image is edited by a low dynamic range image editing system, the high dynamic range image is typically converted into an image file having the lower dynamic range of the image editing system. Important variations at very low intensities and at very high intensities are usually lost in the conversion process.

[0011] A still further problem with existing low dynamic range image editing systems is that the differences in assigned pixel intensity values often fail to bare a linear relationship to the differences in the intensity levels of the portions of the actual scene that these pixels represent. These non-linearities cause further distortions, in addition to the loss of information that occurs when a high dynamic range image is converted to the low dynamic range needed for the image editing system.

[0012] A still further problem with image editing systems is that the editing process is often slowed by repeated applications of a non-linear tone mapping curve or function, such as a gamma correction curve. As is well known, display systems are often adjusted to better match differences in the intensity levels of the real life image using a non-linear tone mapping curve or function, such as a gamma correction curve. Unfortunately, this typically involves complex computations that take significant time to compute during the editing process.

SUMMARY OF THE INVENTION

[0013] One object of the invention is to obviate these as well as other problems in the prior art.

[0014] Another object of the invention is to facilitate the editing of a high dynamic range image with a low dynamic range image editing system without significant loss of dynamic range information.

[0015] A still further object of the invention is to provide an image editing system in which differences in intensity levels are substantially proportional to the differences in the actual scene illumination levels.

[0016] A still further object of the invention is to reduce delays in image editing systems caused by calculations of a non-linear tone mapping curve or function, such as a gamma correction curve.

[0017] A still further object of one embodiment of the invention is to obtain the advantages of the invention by making only slight modifications to standard low dynamic range image editing systems.

[0018] This as well as still further features, objects and benefits of the invention are obtained by a high dynamic range image editing system that edits an image file having pixels spanning a first range of light intensity levels with an image editing system that only displays differences in the light intensity levels of pixels within a second range of light intensity levels that is less than the first range of light intensity levels. A scaling control is operable by the user that allows the user to select one of several scaling factors. A scaler in communication with the scaling control creates a scaled version of the image file that has pixel intensity levels that are scaled from the original values in accordance with the selection made by the user on the scaling control.

[0019] The scaled version of the image file is preferably displayed. One or more image editing tools preferably edit the appearance of the image that is displayed on the display. These tools also edit the pixels in the image file in a manner that is consistent with the edits that are displayed, without reducing the range of light intensity levels in the image file.

[0020] In one embodiment, the intensity of each pixel in the image file is expressed as a floating point number. In a still further embodiment, the floating-point number is substantially proportional to the intensity represented by the pixel in the real image.

[0021] In a still further embodiment, the image file contains a red, green and blue pixel to represent each portion of the image, each pixel with its own intensity level.

[0022] In a still further embodiment, the scaler multiplies the selected scaling factor by the original values of the pixels in the high dynamic range image file.

[0023] In a still further embodiment, the scaling factors include one factor that is greater than one to brighten the image and another factor that is less than one to darken the image.

[0024] In a still further embodiment, a non-linear intensity adjuster, such as a gamma adjuster, adjusts the intensity curve of the image file in a non-linear manner. In one embodiment, a lookup table is included containing a plurality of intensity adjustment values, each mapped to one or more pixel intensities. In a still further embodiment, each intensity adjustment value is mapped to the value of the most significant bit of a pixel intensity value.

[0025] In a still further embodiment, the image editing tools include tools for cropping, rotating, convolving, cloning, retouching, painting and re-sampling.

[0026] In a still further embodiment, the scaling control is mapped to one or more kevs on a keyboard. In an alternate embodiment, the scaling control is mapped to an area of the display that is selected by a mouse.

[0027] The invention also embraces the methods that are implemented by the systems described above.

[0028] The invention also includes computer-readable media containing computer-readable programming instructions which, when loaded and executed in a computer system, help create these systems and implement these methods.

[0029] The invention also includes computer-readable media containing an image file defined by a set of pixels, each pixel having an intensity value expressed as a mantissa and an exponent. In one embodiment, each pixel has a separate value for its red, blue and green components.

[0030] These as well as still further features, objects and benefits of the invention will now be apparent from a review of the following detailed description of illustrative embodiments of the invention and the attached drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

[0031]FIG. 1 illustrates certain components of one embodiment of the invention.

[0032]FIG. 2 is a table setting forth typical values of various pixels in connection with the embodiment of the invention shown in FIG. 1.

DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS OF INVENTION

[0033]FIG. 1 illustrates certain components of one embodiment of the invention.

[0034] As shown in FIG. 1, a high dynamic range image file 101 is processed by an image editing system 103. The image editing system 103 includes a dynamic range converter 105, a display 107, a keyboard 109, a mouse 111 and image editing tools 113.

[0035] A user-operable scaling control 121 is in communication with a scaler 123 which, in turn, is in communication with the image file 101 and the image editing system 103. A gamma adjuster 125 is in communication with a gamma lookup table 127 that is in communication with the image editing system 103.

[0036] The image editing system 103 is intended to represent any of the image editing systems that are now known or hereinafter created. At least some aspect of the image editing system 103 will typically be limited to a dynamic range that is less than the dynamic range of the image file 101.

[0037] The “dynamic range” of an image is the contrast ratio between its brightest and darkest parts. In the real world, there is no theoretical limit on this ratio. A plate of evenly lit mashed potatoes outside in a cloudy day will have a very low dynamic range. The interior of an ornate cathedral with light streaming in through its stained-glass windows, on the other hand, will have a very high dynamic range. Scenes in which the light sources can be directly seen will also usually have a very high dynamic range.

[0038] By way of comparison, the dynamic range of the display system in many image editing systems today is merely 0-255. In sharp contrast, many real-life scenes have a dynamic range from 0-100,000, 0-1,000,000, and even greater.

[0039] There are numerous reasons for the low dynamic range of many existing image editing systems. These include limitations in the number of bits that the system works with to specify intensity and/or limitations in display systems that they use.

[0040] In a typical prior art system, a high dynamic range image file is converted to lower dynamic range image data that the image editing system can handle. Changes are then typically made to the lower dynamic range image data by the editing tools of the low dynamic range image editing system. The results of the edits are then typically stored as a low dynamic range image file, thus resulting in substantial loss of image intensity information.

[0041] The invention takes a different approach. The scaling control 121 allows the user of the image editing system to input or select one of several scaling factors. The inputted or selected scaling factor is then preferably multiplied by the value of the intensity of each pixel in the high dynamic range image file 101 by the scaler 123. The scaled image data is then converted by the dynamic range converter 105 into low dynamic range image data. In one embodiment, the low dynamic range image data is then processed by the editing tools 113.

[0042] The editing process, of course, is typically facilitated through commands entered into the keyboard 109 and through use of the mouse 111. Intermediate as well as final editing results are typically displayed on the display 107.

[0043]FIG. 2 is a table setting forth typical values of pixels in connection with the embodiment of the invention shown in FIG. 1. Six illustrative pixels (numbers 1 through 6) are shown in the rows of the table in FIG. 2. In a preferred embodiment of the invention, the intensity level of the each pixel is stored as a number in scientific notation containing a mantissa and an exponent.

[0044] With respect to pixel 1 in the table of FIG. 2, for example, and as shown in the column titled “High Dynamic Range Image Intensity,” the intensity level is stored as 1.23*10⁻³.

[0045] In one embodiment of the invention, each number that represents an intensity level is actually stored in the IEEE floating point format. This format is:

SEEEEEEEEMMMMMMMMMMMMMMMMMMMMMMM

[0046] In this example, the most significant “S” bit represents the sign; the 8 “E” bits represent the exponent value; and the 23 “M” bits represent the mantissa value. In one embodiment, the sign “S” bit is advantageously utilized to effectively double the number of distinguishable values that are stored in the field. The value of the intensity level stored in this format would then be:

(−1)^(s)*1.MMMMMMMMMMMMMMMMMMMMMMM*2^(EEEEEEEE)

[0047] Of course, it is to be understood that a vast array of different formats can also be used to store the intensity values. For example, a different number of bits could be used to store the exponent and mantissa values. The sign bit could also be eliminated. In addition, a common exponent could be used for each of the color values of the pixel.

[0048] The columns of the table in FIG. 2 under the heading “Low Dynamic Range Image Intensity” represent the corresponding values of each pixel after they have been scaled with the scaler 123 using five different scaling factors that are generated by the scaling control 121 and after they have been converted with the dynamic range converter 105. The resulting intensities after the dynamic range converter 105 converts the high dynamic range image file 101 is shown in the center column under the “Low Dynamic Range Image Intensity” section.

[0049] When the scaling=1, subtle differences in the intensity of dark images (pixels 1 and 2) are completely lost, all of these differing intensities being converted to the same “0” value. Similarly, subtle differences among high intensity values (pixels 5 and 6) are also lost, these differing values all being converted to the same number “255.” Differences in the mid-range intensity values (pixels 3 and 4), on the other hand, are partially retained.

[0050] When the scaling=0.001, on the other hand, the high dynamic range image is darkened. Differences at very high intensity levels (pixels 5 and 6) are not lost and are now displayed as visible differences in intensity.

[0051] Conversely, when the scaling=1,000, the high dynamic range image is substantially brightened, resulting in the display of differences among the very low intensity pixels (pixels 1 and 2).

[0052] The scaling control can also be used advantageously, even when there are differences in the intensity values in the low dynamic range image data. Pixels 3 and 4 in FIG. 2, for example, have different intensity values in the low dynamic range image data. However, they both are so far at the bottom of the scale that, as a practical matter, they both are likely to indistinguishably appear on the display as black without any scaling. By scaling these pixels by a factor of 10, their values move more into the range of values that are likely to appear distinguishable on the display.

[0053] As will now be apparent to the skilled artisan, there are a broad variety of embodiments that the various components of the invention and process steps could take.

[0054] The scaling control 121, for example, could be one or more keys on the keyboard, such as the “+” and “−” keys. Alternatively, it could be an area on the screen that is selected or controlled by a mouse, keyboard or other input device. When a display is used, the available scaling factors could be presented in a list or the desired factor could simply be directly entered into a fill-in box or other area on the screen.

[0055] When keys on the keyboard are used as the scaling control 121, successive depressions of one key (e.g., the “+”) key might cause the value to be incremented, while successive depressions of another key (e.g., the “−”) key might cause the value to be decrement. The value of each increment and decrement might be linear, logarithmic, or in accordance with any other type of function. Minimum and/or maximum values for the scaling factors might also be imposed by the system.

[0056] In one embodiment, the scaler 123 multiplies the scaling factor created by the scaling control 121 by the intensity values of the pixels in the high dynamic range image file 101 on a pixel-by-pixel basis, including, as is commonly the case, the value of each of the red, blue and green channels. In alternate embodiments, other types of functional computations (e.g., addition or subtraction) could be performed.

[0057] As explained above, the scaled image data is then delivered to the dynamic range converter 105. As is well known in the art, this is a subsystem that typically truncates less significant digits in the intensity values so as to cause the resulting data to fit within the low dynamic range of the image editing system. As illustrated in the Scaling=1 section of FIG. 2, small differences between very low intensity values and very high intensity values are typically lost in this process. All of the very low intensity values are typically assigned to the same very low intensity value. All of the differing very high intensity values are typically assigned to the same single high intensity value.

[0058] When the high dynamic range image data from the high dynamic range image file 101 is scaled in accordance with the invention, however, this normal result is significantly altered. When a very large scaling factor is applied, for example, small differences between very low intensity values are effectively amplified, effectively increasing the exposure level of the image and, in turn, allowing these differences to fall within the scope of differences that the low dynamic range image editing system can manipulate and/or display. Conversely, when a very small scaling factor is applied, small differences between very high intensity values are effectively darkened, effectively decreasing the exposure level of the image and, in turn, allowing these differences to again fall within the scope of differences that the low dynamic range image editing system can manipulate and/or display.

[0059] The dynamic range converter 105 is simply a convenient name chosen for the conversion system. Typically, this is implemented with a combination of software and hardware. Pure software or pure hardware implementations may also be made.

[0060] The display 107 is intended to designate any type of device that can visually. illustrate differences in intensity levels of pixels to the user of the scaling control 121. This would of course include CRTs, LCDs and even printers.

[0061] The keyboard 109 and the mouse 111 are merely two forms of input devices that are used to control the image editing system, as well as, in certain embodiments, the scaling control 121. Of course, other types of input devices, including data communicated form other computers or devices are also contemplated.

[0062] The image editing tools 113 are the image editing tools that typically are provided with image editing systems, as well as others. As is well known, such tools typically include tools that can crop the image, resample the image, rotate the image, translate the image, and apply convolutions to the image. They also include filtering tools, touch-up tools, cloning, retouching, painting etc. As is well known, these are typically implemented through software using mathematical computations. All types of image editing tools are contemplated.

[0063] As the editing on the low dynamic range image data proceeds in one embodiment, the edited image is typically displayed on the display 107. Although preferred, this is not a necessary step.

[0064] After each edit is made (or after the editing is completed) in one embodiment of the invention, each pixel in the original high dynamic range image file that had its corresponding pixel edited in the low dynamic range image file is replaced by the corresponding edited value from the low dynamic range image range file, scaled by a factor that is the inverse of the scaling factor used to create the low dynamic range image file. As a result of this process, the edited high dynamic range image file 131 retains the full high dynamic range of the original image file 101, plus the edits.

[0065] In one embodiment of the invention, a standard off-the-shelf low dynamic range image editing system can be readily adopted to implement the invention. In this event, software merely needs to be added to scale the high dynamic range image file in accordance with the user-settable scaling factor (e.g., using the scaling control 121 and scaler 123 in FIG. 1) and to convert the scaled image to the lower dynamic range needed by the low dynamic range image editing system (e.g., using the dynamic range converter 105 shown in FIG. 1). The scaled and converted low dynamic range image file is then edited by the editing tools and displayed as needed. Additional software must also then be added to replace each all pixel in the high dynamic range image file that has been edited in the low dynamic range image with its corresponding edited version, scaled by the inverse of the scaling factor that was used.

[0066] In another embodiment of the invention, the editing tools are capable of directly editing the high dynamic range image file, but the display system may only be capable of displaying a lower dynamic range image. In this embodiment, a scaler (e.g., the scaler 121 in FIG. 1) scales all or a only a desired portion of the high dynamic range image file based on the scaling factor generated by a user-operable scaling control (e.g., the scaling control in FIG. 1) to create a lower dynamic range image file. The lower dynamic range file is then delivered to the display system and is displayed while the editing tools edit the high dynamic range file directly.

[0067] Another feature of the invention relates to non-linear tone mapping curves or functions, such as gamma correction. As is well known, the gamma curve of many image editing systems does not match the intensity dynamics of the actual scene. To compensate, non-linear tone mapping curves or functions, such as gamma curve adjustments, are traditionally made, typically by hardware, software or a combination of both.

[0068] In one embodiment of the invention, a non-linear adjuster, such as a gamma adjuster 125, is provided for this purpose. As with the scaling control 121, this can be implemented through keystroke commands, mouse commands, or in any other way.

[0069] In the past, non-linear tone mapping curve or function adjustments, such as gamma adjustment compensation, was typically implemented by performing mathematical computations on each pixel. Unfortunately, this approach was often very demanding on processor time, slowing the editing process.

[0070] The invention helps reduce this problem by including an adjustment lookup table, such as a gamma lookup table 127. The gamma lookup table 127 maps pixel intensity values to gamma-adjusted pixel intensity values, thus obviating the need to perform any calculations. Instead, the pixel intensity value is simply looked up in the table to find its corresponding gamma-adjusted value.

[0071] The amount of correction that is specified by the gamma adjuster 125, of course, will affect the data that is populated in the gamma look-up table 127. In one embodiment, the adjustment data can be obtained through standard computational techniques and then stored just once in the lookup table 127. In this way, the adjusted value for pixels of the same intensity need not be recalculated each time.

[0072] To further economize on processing time and the size of data storage, the gamma look-up table can merely contain mapped values for ranges of pixel intensities, rather than for every single conceivable pixel intensity. In one embodiment, pixel intensities are only mapped for the high order bits of the word that is storing the pixel intensity value.

[0073] As indicated, the gamma correction apparatus and methods of the invention are equally applicable to other types of non-linear tone mapping curves or functions.

[0074] The software that is used to implement features of the invention can conveniently be stored in computer-readable media which, when loaded into a computer system, will cause that system to implement systems and methods of the invention. Such media can include CD ROMS, floppy disks, tapes, etc.

[0075] Although certain embodiments of the invention have now been described, it is of course to be understood that the invention is equally applicable to a broad array of different embodiments. In short, the invention is limited solely to the claims that now follow into equivalents. 

We claim:
 1. A high dynamic range image editing system for editing a high dynamic range image file having pixels spanning a first range of light intensity levels on an image editing system that only display differences in the light intensity levels of pixels within a second range of light intensity levels that is less than the first range of light intensity levels, comprising: a) a scaling control operable by the user that allows the user to enter one of several scaling factors; b) a scaler in communication with said scaling control for creating a scaled version of the image file that has pixel intensity levels that are scaled from their original values in accordance with the entry made by the user on said scaling control; c) a display for displaying the scaled version of the image file; and d) one or more image editing tools for editing the appearance of the image that is displayed on the display and for editing the pixels in the image file in a manner that is consistent with the edits that are displayed without reducing the range of light intensity levels in the image file.
 2. The image editing system of claim 1 wherein the intensity of each pixel in the image file is expressed as a floating point number.
 3. The image editing system of claim 2 wherein the value of the floating point number is substantially proportional to the intensity represented by the pixel.
 4. The image editing system of claim 1 wherein the image file contains a red, green and blue pixel for each segment of the image, each with its own intensity level.
 5. The image editing system of claim 1 wherein said scaler multiplies the original pixel values by the entered scaling factor.
 6. The image editing system of claim 1 wherein the scaling factors that can be entered include one factor that is greater than one and one factor that is less than one.
 7. The image editing system of claim 1 further including a non-linear adjuster that adjusts the intensity curve of the image file in a non-linear manner.
 8. The image editing system of claim 7 wherein the intensity adjuster includes a lookup table containing a plurality of adjustment values, each mapped to one or more pixel intensities.
 9. The image editing system of claim 8 wherein each value is mapped to the value of the most significant bits of a pixel intensity value.
 10. The image editing system if claim 1 wherein said image editing tools include tools that perform one or more of the following operations: cropping, rotation, translation, cloning, retouching, painting, convolving or re-sampling.
 11. The image editing system of claim 1 wherein said scaling control is mapped to one or more keys on a keyboard.
 12. The image editing system of claim 1 wherein said scaling control is mapped to an area on a display that is selected by a mouse.
 13. The image editing system of claim 1 wherein said editing tools are configured to edit the scaled version of the image file and wherein the system is configured to cause each pixel in the high dynamic range image file that has been edited in the scaled version of the image file to be replaced by the value of its edited version, scaled by a factor that is the substantial inverse of the scaling factor selected by the user.
 14. The image editing system of claim 1 wherein said editing tools are configured to edit the high dynamic range image file.
 15. A method for editing an image file having pixels spanning a first range of light intensity levels on an image editing system that only display differences in the light intensity levels of pixels within a second range of light intensity levels that is less than the first range of light intensity levels, comprising: a) entering one of several scaling factors using a control operable by a user; b) creating a scaled version of the image file that has pixel intensity levels that are scaled from their original values in accordance with the entered scaling factor; c) displaying the scaled version of the image file; d) editing the appearance of the image that is displayed on the display; and e) editing the pixels in the image file in a manner that is consistent with the edits that are displayed without reducing the range of light intensity levels in the image file.
 16. The method of image editing of claim 15 wherein the intensity of each pixel in the image file is expressed as a floating point number.
 17. The method of image editing of claim 16 wherein the value of the floating point number is substantially proportional to the intensity represented by the pixel.
 18. The method of image editing of claim 15 wherein the image file contains a red, green and blue pixel for each segment of the image, each with its own intensity level.
 19. The method of image editing of claim 15 wherein the entered scaling factor is multiplied by the original pixel values.
 20. The method of image editing of claim 15 wherein the possible scaling factors include one factor that is greater than 1 and one factor that is less than one.
 21. The method of image editing of claim 15 further including adjusting the intensity curve of the image file in a non-linear manner.
 22. The method of image editing of claim 21 wherein said adjusting includes selecting values from a table containing a plurality of adjustment values, each mapped to one or more pixel intensities.
 23. The image editing system of claim 22 wherein each value is mapped to the value of the most significant bits of a pixel intensity value.
 24. The method of image editing of claim 15 further including one or more of the following: cropping, rotating, translating, convolving, cloning, retouching, painting or re-sampling.
 25. The method of image editing of claim 15 wherein said entering is performed by a key on a keyboard.
 26. The method of image editing of claim 15 wherein said entering is performed by selecting information on a display with a mouse.
 27. The method of image editing of claim 15 wherein said editing tools edit the scaled version of image file and wherein each pixel in the high dynamic range image file that has been edited in the scaled version of the image file is replaced by the value of its edited version, scaled by a factor that is the substantial inverse of the scaling factor entered by the user.
 28. The method of image editing of claim 15 wherein the editing tools edit the high dynamic range image file.
 29. Computer-readable media containing computer-readable programming instructions which, when loaded and executed in a computer system, implement the method of claim
 15. 30. Computer-readable media containing an image file with a set of pixels, each pixel having an intensity value expressed as a mantissa and an exponent.
 31. The computer-readable media of claim 30 wherein each pixel has a red, blue and green component and wherein each component is expresses as a mantissa and an exponent. 